package com.fuyun.rpc.server.registry;

import com.fuyun.rpc.common.domain.ServiceMetaInfo;
import com.fuyun.rpc.server.config.RegistryConfig;

/**
 * @author: zrq1351
 * @date: 2025/2/15
 */
public interface Registry {

	/**
	 * 初始化
	 *
	 * @param registryConfig 注册中心配置
	 */
	void init(RegistryConfig registryConfig);

	/**
	 * 注册服务（服务端）
	 *
	 * @param serviceMetaInfo 服务元信息
	 * @throws Exception 注册异常
	 */
	void register(ServiceMetaInfo serviceMetaInfo) throws Exception;

	/**
	 * 注销服务（服务端）
	 *
	 * @param serviceMetaInfo 服务元信息
	 */
	void unRegister(ServiceMetaInfo serviceMetaInfo);

	/**
	 * 服务销毁
	 */
	void destroy();

	/**
	 * 心跳检测（服务端）
	 */
	void heartBeat();
}